package zj.it.bhne.greendao;

import android.annotation.SuppressLint;
import android.app.Application;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Toast;

public class MyApplication extends Application {

    @SuppressLint("StaticFieldLeak")
    public static Context context;
    //静态单例
    @SuppressLint("StaticFieldLeak")
    public static MyApplication instances;
    public static Toast toast;
    private zj.it.bhne.greendao.DaoMaster.DevOpenHelper mHelper;
    private SQLiteDatabase db;
    private zj.it.bhne.greendao.DaoMaster mDaoMaster;
    private zj.it.bhne.greendao.DaoSession mDaoSession;

    public static MyApplication getInstances() {
        return instances;
    }

    /**
     * 显示Toast
     */
    @SuppressLint("ShowToast")
    public static void getToast(Context context, String content) {
        if (toast == null)
            toast = Toast.makeText(context, content, Toast.LENGTH_SHORT);
        else
            toast.setText(content);

        toast.show();
    }

    public static Context mContext() {
        return context;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        instances = this;
        context = getApplicationContext();
        setDatabase();
    }

    /**
     * 设置greenDao
     */
    private void setDatabase() {
        // 通过 DaoMaster 的内部类 DevOpenHelper，你可以得到一个便利的 SQLiteOpenHelper 对象。
        // 可能你已经注意到了，你并不需要去编写「CREATE TABLE」这样的 SQL 语句，因为 greenDAO 已经帮你做了。
        // 注意：默认的 DaoMaster.DevOpenHelper 会在数据库升级时，删除所有的表，意味着这将导致数据的丢失。
        // 所以，在正式的项目中，你还应该做一层封装，来实现数据库的安全升级。
        mHelper = new zj.it.bhne.greendao.DaoMaster.DevOpenHelper(this, "demo", null);
        db = mHelper.getWritableDatabase();
        // 注意：该数据库连接属于 DaoMaster，所以多个 Session 指的是相同的数据库连接。
        mDaoMaster = new zj.it.bhne.greendao.DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }

    public zj.it.bhne.greendao.DaoSession getDaoSession() {
        return mDaoSession;
    }

}
